package com.cskayan.javase.object._3equals;

import java.math.BigDecimal;

/**
 * 用BigDecimal类计算小数,避免浮点数的精度问题
 * BigDecimal: 大十进制数,因为它没有精度限制
 * 不可变的、任意精度的有符号十进制数。
 *
 * 它最常用的构造器:
 * BigDecimal(String val)
 *      将 BigDecimal 的字符串表示形式转换为 BigDecimal。
 *
 * 常见的运算都需要方法来实现:
 * 比如减法:
 * subtract
 * public BigDecimal subtract(BigDecimal subtrahend)
 *
 * @since 17:21
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo4 {
    public static void main(String[] args) {
        double a = 1;
        double b = 0.9;
        System.out.println(a - b);

        float c = 1;
        float d = 0.9F;
        System.out.println(c - d);

        BigDecimal b1 = new BigDecimal("1");
        BigDecimal b2 = new BigDecimal("0.9");
        BigDecimal result = b1.subtract(b2);
        System.out.println(result);
    }
}
